package net.spunofbook.modelo;

import java.util.ArrayList;
import java.util.List;

import net.spunofbook.negocio.Cliente;
import net.spunofbook.negocio.Venda;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class VendaRepositorio {

	private String[] colunas = new String[] {"_idVenda", "cliente", "data", "valor", "observacao", "situacao"};
	private SQLiteDatabase queryVenda;
	private Context context;
	
	
	public VendaRepositorio(Context context) {
		this.context = context; 
		BancoSqlLiteConection auxBd = new BancoSqlLiteConection(context);
		queryVenda = auxBd.getWritableDatabase();
	}
	
	
	public List<Venda> buscarTodasAsVendas(){
		List<Venda> vendas = new ArrayList<Venda>();		
		ClienteRepositorio cliente = new ClienteRepositorio(context);
		Cursor cursor = queryVenda.query("venda", colunas, null, null, null, null, "_idVenda ASC");
		
		if (cursor.getCount() > 0) {
			cursor.moveToFirst();
			do {
				Cliente clienteAux = cliente.buscarPorId(cursor.getInt(1));
				Venda venda = new Venda();
				venda.setIdVenda(cursor.getInt(0));
				venda.setIdCliente(cursor.getInt(1));
				venda.setNomeCliente(clienteAux.getNome());
				venda.setData(cursor.getString(2));
				venda.setValor(cursor.getFloat(3));
				vendas.add(venda);
			} while (cursor.moveToNext());
		}
		return vendas;
	}
	
	public void inserir(Venda venda) {
		ContentValues valores = new ContentValues();
		valores.put("cliente", venda.getIdCliente());
		valores.put("data", venda.getData().toString());
		valores.put("valor", venda.getValor());
		valores.put("observacao", venda.getObservacao().toString());
		valores.put("situacao", venda.getSituacao().toString());

		queryVenda.insert("venda", null, valores);
	}
	
	public void deletar(Venda venda) {
		queryVenda.delete("venda", "_idVenda = " + venda.getIdVenda(), null);
	}

}
